package org.jypj.dev.dao;

import org.jypj.dev.model.UserTrainWorkScore;
import org.jypj.dev.util.Page;

import java.util.List;
import java.util.Map;

public interface IUserTrainWorkScoreDao {

	/**
	 * 保存 字段为空的不存防止覆盖存在默认值的字段
	 * 
	 * @param userTrainWorkScore
	 * @return 保存后的对象包括ID
	 */
	public int saveUserTrainWorkScoreByField(UserTrainWorkScore userTrainWorkScore);

	/**
	 * 保存 所有字段全都保存
	 * 
	 * @param userTrainWorkScore
	 * @return 保存后的对象包括ID
	 */
	public int saveUserTrainWorkScore(UserTrainWorkScore userTrainWorkScore);

	/**
	 * 保存所有的用户车次工序得分
	 * 
	 * @param userTrainWorkScores
	 * @return
	 */
	public int saveUserTrainWorkScores(List<UserTrainWorkScore> userTrainWorkScores);

	/**
	 * 根据ID删除
	 * 
	 * @param id
	 *            主键ID
	 * @return 删除记录数
	 */
	public int deleteUserTrainWorkScoreById(String id);

	/**
	 * 根据对象删除
	 * 
	 * @param userTrainWorkScore
	 * @return
	 */
	public int deleteUserTrainWorkScoreByObject(UserTrainWorkScore userTrainWorkScore);

	/**
	 * 更新 只更新值不为空的字段
	 * 
	 * @param userTrainWorkScore
	 * @return 保存后的对象包括ID
	 */
	public int updateUserTrainWorkScoreByField(UserTrainWorkScore userTrainWorkScore);

	/**
	 * 更新 更新所有字段
	 * 
	 * @param userTrainWorkScore
	 * @return 保存后的对象包括ID
	 */
	public int updateUserTrainWorkScore(UserTrainWorkScore userTrainWorkScore);

	/**
	 * 按ID查询
	 * 
	 * @parm id 主键ID
	 * @return UserTrainWorkScore
	 */
	public UserTrainWorkScore selectUserTrainWorkScoreById(String id);

	/**
	 * 分页查询 包含条件
	 * 
	 * @param page
	 *            分页对象
	 * @param map
	 *            查询条件
	 * @return List<UserTrainWorkScore>
	 */
	public List<UserTrainWorkScore> selectOnePageByMap(Page page, Map<String, Object> map);

	/**
	 * 分页查询 包含对象条件
	 * 
	 * @param page
	 *            分页对象
	 * @param userTrainWorkScore
	 *            查询对象
	 * @return List<UserTrainWorkScore>
	 */
	public List<UserTrainWorkScore> selectOnePageByUserTrainWorkScore(Page page, UserTrainWorkScore userTrainWorkScore);

	/**
	 * 按条件查询全部的
	 * 
	 * @param map
	 *            查询条件
	 * @return List<UserTrainWorkScore>
	 */
	public List<UserTrainWorkScore> selectAllByMap(Map<String, Object> map);

	/**
	 * 按条件查询全部的
	 * 
	 * @param map
	 *            查询条件
	 * @return List<UserTrainWorkScore>
	 */
	public List<UserTrainWorkScore> selectAllByUserTrainWorkScore(UserTrainWorkScore userTrainWorkScore);

	/**
	 * 按条件查询单个对象
	 * 
	 * @param map
	 *            查询条件
	 * @return UserTrainWorkScore
	 */
	public UserTrainWorkScore selectObjectByMap(Map<String, Object> map);

	/**
	 * 按条件查询单个对象
	 * 
	 * @param map
	 *            查询条件
	 * @return UserTrainWorkScore
	 */
	public UserTrainWorkScore selectObjectByUserTrainWorkScore(UserTrainWorkScore userTrainWorkScore);
}
